--- libvmime-0.7.1.orig/src/charset.cpp	2005-03-18 22:26:46.000000000 +0100
+++ libvmime-0.7.1.patched/src/charset.cpp	2008-07-07 13:51:33.414160106 +0200
@@ -206,10 +206,12 @@
 				out += STRINGT(static_cast <ovt*>(buffer), sizeof(buffer) - outBytesLeft);
 
 				// Ignore this "blocking" character and continue
+				if (outBytesLeft > 0) {
 				out += '?';
 				++inBuffer;
 				--inBytesLeft;
 			}
+			}
 			else
 			{
 				out += STRINGT(static_cast <ovt*>(buffer), sizeof(buffer) - outBytesLeft);
